import {defineConfig} from 'vite'
import react from '@vitejs/plugin-react-swc'
import type {Plugin} from 'vite'
import mockjs from 'mockjs'
import url from 'node:url'
/**
 * vite插件。mockJs
 */
const viteMockServer = (): Plugin => {

  return {
    name: 'vite-mock-server',
    // hook
    // 获取当前启动项目本地的服务：即http://localhost:5173/，并返回，即server。
    configureServer(server) {
      server.middlewares.use('/api/list', (req, res) => {

        const parseUrl = url.parse(req.originalUrl,true).query
        // eg:/api/list?page=1&pageSize=10
        // 如果参数为true，那么获取到的是：{page:1,pageSize: 10}。我们更喜欢处理对象咯

        res.setHeader('content-type','application/json') // 指定返回格式
        const data = mockjs.mock({
          'list|1000': [
            {
              'id|+1': 1,
              name: parseUrl.keyWord,
              'address':'@county(true)', // true：返回省市区。
            }
          ]
        })
        res.end(JSON.stringify(data))
      })
    }
  }
}
// https://vite.dev/config/
export default defineConfig({
  plugins: [
    react(),
    viteMockServer()
  ],
})
